<?php
namespace Mouta\AmistateBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Mouta\AmistateBundle\Entity
 * 
 * @ORM\Table(name="denuncias")
 * @ORM\Entity(repositoryClass="Mouta\AmistateBundle\Entity\DenunciasRepository")
 */
class Denuncias
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;

    /**
     * @ORM\Column(type="text")
     * @Assert\NotBlank()
     */
    protected $mensaje;
    
    /**
    * @ORM\Column(type="integer", nullable=false)
    */
    protected $tipo;
    
    /**
     * @ORM\Column(type="datetime")
     * @Assert\DateTime()
     * @Assert\NotBlank()
     */
    protected $created_at;
    
    /**
     * @ORM\ManyToOne(targetEntity="Usuario")
     * @ORM\JoinColumn(name="denunciante", referencedColumnName="id", onDelete="Cascade")
     */
    protected $denunciante;
    
    /**
     * @ORM\ManyToOne(targetEntity="Usuario")
     * @ORM\JoinColumn(name="infractor", referencedColumnName="id", onDelete="Cascade")
     */
    protected $infractor;
    
    /**
    * @ORM\Column(type="integer", nullable=true)
    */
    protected $motivo;
    
    /**
     * @ORM\Column(type="text")
     */
    protected $extra;

    public function __construct(){
        $this->created_at = new \DateTime();
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set mensaje
     *
     * @param text $mensaje
     */
    public function setMensaje($mensaje)
    {
        $this->mensaje = $mensaje;
    }

    /**
     * Get mensaje
     *
     * @return text 
     */
    public function getMensaje()
    {
        return $this->mensaje;
    }

    /**
     * Set tipo
     *
     * @param integer $tipo
     */
    public function setTipo($tipo)
    {
        $this->tipo = $tipo;
    }

    /**
     * Get tipo
     *
     * @return integer 
     */
    public function getTipo()
    {
        return $this->tipo;
    }

    /**
     * Set created_at
     *
     * @param datetime $createdAt
     */
    public function setCreatedAt($createdAt)
    {
        $this->created_at = $createdAt;
    }

    /**
     * Get created_at
     *
     * @return datetime 
     */
    public function getCreatedAt()
    {
        return $this->created_at;
    }

    /**
     * Set denunciante
     *
     * @param Mouta\AmistateBundle\Entity\Usuario $denunciante
     */
    public function setDenunciante(\Mouta\AmistateBundle\Entity\Usuario $denunciante)
    {
        $this->denunciante = $denunciante;
    }

    /**
     * Get denunciante
     *
     * @return Mouta\AmistateBundle\Entity\Usuario 
     */
    public function getDenunciante()
    {
        return $this->denunciante;
    }

    /**
     * Set infractor
     *
     * @param Mouta\AmistateBundle\Entity\Usuario $infractor
     */
    public function setInfractor(\Mouta\AmistateBundle\Entity\Usuario $infractor)
    {
        $this->infractor = $infractor;
    }

    /**
     * Get infractor
     *
     * @return Mouta\AmistateBundle\Entity\Usuario 
     */
    public function getInfractor()
    {
        return $this->infractor;
    }

    /**
     * Set motivo
     *
     * @param integer $motivo
     */
    public function setMotivo($motivo)
    {
        $this->motivo = $motivo;
    }

    /**
     * Get motivo
     *
     * @return integer 
     */
    public function getMotivo()
    {
        return $this->motivo;
    }

    /**
     * Set extra
     *
     * @param text $extra
     */
    public function setExtra($extra)
    {
        $this->extra = $extra;
    }

    /**
     * Get extra
     *
     * @return text 
     */
    public function getExtra()
    {
        return $this->extra;
    }
}